package benchmarks.tpch.utils;

public class Types {
    public static enum CastTypes { LONG, DOUBLE, STRING, DATE }

    public static final CastTypes[] customerTypes = {
            CastTypes.LONG,   // c_custkey
            CastTypes.STRING, // c_name
            CastTypes.STRING, // c_address
            CastTypes.LONG,   // c_nationkey
            CastTypes.STRING, // c_phone
            CastTypes.DOUBLE, // c_acctbal
            CastTypes.STRING, // c_mktsegment
            CastTypes.STRING  // c_comment
    };

    public static final CastTypes[] lineitemTypes = {
            CastTypes.LONG, // l_orderkey
            CastTypes.LONG, // l_partkey
            CastTypes.LONG, // l_suppkey
            CastTypes.LONG, // l_linenumber
            CastTypes.DOUBLE, // l_quantity
            CastTypes.DOUBLE, // l_extendedprice
            CastTypes.DOUBLE, // l_discount
            CastTypes.DOUBLE, // l_tax
            CastTypes.STRING, // l_returnflag
            CastTypes.STRING, // l_linestatus
            CastTypes.DATE, // l_shipdate
            CastTypes.DATE, // l_commitdate
            CastTypes.DATE, // l_receiptdate
            CastTypes.STRING, // l_shipinstruct
            CastTypes.STRING, // l_shipmode
            CastTypes.STRING  // l_comment
    };

    public static final CastTypes[] nationTypes = {
            CastTypes.LONG,   // n_nationkey
            CastTypes.STRING, // n_name
            CastTypes.LONG,   // n_regionkey
            CastTypes.STRING  // n_comment
    };

    public static final CastTypes[] ordersTypes = {
            CastTypes.LONG,   // o_orderkey
            CastTypes.LONG,   // o_custkey
            CastTypes.STRING, // o_orderstatus
            CastTypes.DOUBLE, // o_totalprice
            CastTypes.DATE,   // o_orderdate
            CastTypes.STRING, // o_orderpriority
            CastTypes.STRING, // o_clerk
            CastTypes.LONG,   // o_shippriority
            CastTypes.STRING  // o_comment
    };

    public static final CastTypes[] partTypes = {
            CastTypes.LONG,   // p_partkey
            CastTypes.STRING, // p_name
            CastTypes.STRING, // p_mfgr
            CastTypes.STRING, // p_brand
            CastTypes.STRING, // p_type
            CastTypes.LONG,   // p_size
            CastTypes.STRING, // p_container
            CastTypes.DOUBLE, // p_retailprice
            CastTypes.STRING  // p_comment
    };

    public static final CastTypes[] partsuppTypes = {
            CastTypes.LONG,   // ps_partkey
            CastTypes.LONG,   // ps_suppkey
            CastTypes.LONG,   // ps_availqty
            CastTypes.DOUBLE, // ps_supplycost
            CastTypes.STRING  // ps_comment
    };

    public static final CastTypes[] regionTypes = {
            CastTypes.LONG,   // r_regionkey
            CastTypes.STRING, // r_name
            CastTypes.STRING  // r_comment
    };

    public static final CastTypes[] supplierTypes = {
            CastTypes.LONG,   // s_suppkey
            CastTypes.STRING, // s_name
            CastTypes.STRING, // s_address
            CastTypes.LONG,   // s_nationkey
            CastTypes.STRING, // s_phone
            CastTypes.DOUBLE, // s_acctbal
            CastTypes.STRING, // s_comment
    };
}
